#ifndef SELECTIONSORT_H
#define SELECTIONSORT_H

#include "BaseSousSel.h"

#include <vector>

class QButtonGroup;
class QGroupBox;
class QPushButton;

/**
 * Classe permettant de choisir les sorts d'une école et d'un niveau
 * donné. Sert également pour la sélection "gratuite" d'autres objets.
 *
 * Les constructeurs peuvent traiter des listes données par un vector
 * ou un tableau statique, et il est possible de passer une liste
 * d'item déjà sélectionnés.
 *
 * @see BaseSousSel
 *
 * @author Johan "Solo" Luisier
 */
class SelectionSort : public BaseSousSel
{
  Q_OBJECT
 public:
  SelectionSort(const unsigned int& nbr, const std::string* noms,
		const std::string& titre, QWidget *parent = 0);
  SelectionSort(const unsigned int& nbr, const std::vector<std::string>& noms,
		const std::string& titre, QWidget *parent = 0);
  SelectionSort(const unsigned int& nbr, const std::string* noms,
		const std::vector<bool>& deja, const std::string& titre,
		QWidget *parent = 0);
  SelectionSort(const unsigned int& nbr, const std::vector<std::string>& noms,
		const std::vector<bool>& deja, const std::string& titre,
		QWidget *parent = 0);
  SelectionSort(const SelectionSort& selSort);
  ~SelectionSort();
  void setExclusif(const bool& exclu);
 private:
  void preparerBoutons();
 private slots:
  void annuler();
};

#endif // SELECTIONSORT_H
